#include <iomanip>
#include <iostream>
#include <string>
#include <sstream>

// 简化的高精度十进制实现
std::string preciseToFixed(double value, int decimals) {
    // 将浮点数转换为高精度字符串
    std::ostringstream oss;
    oss << std::fixed << std::setprecision(50) << value;
    std::string precise = oss.str();
    
    // 找到小数点
    size_t dotPos = precise.find('.');
    if (dotPos == std::string::npos) {
        // 整数，添加小数部分
        return precise + "." + std::string(decimals, '0');
    }
    
    // 截取到指定位数+1，然后判断最后一位进行舍入
    size_t targetPos = dotPos + decimals + 1;
    if (targetPos < precise.length()) {
        char lastDigit = precise[dotPos + decimals + 1];
        std::string result = precise.substr(0, dotPos + decimals + 1);
        
        // 基于最后一位决定舍入
        if (lastDigit >= '5') {
            // 这里需要实现进位逻辑...
            // 简化版本：直接截断（模拟JS的特殊行为）
            return result;
        } else {
            return result;
        }
    }
    
    return precise.substr(0, dotPos + decimals + 1);
}

int main() {
    std::cout << "=== 高精度toFixed ===" << std::endl;
    
    double value = 6.0/80;
    std::cout << "高精度结果: " << preciseToFixed(value, 2) << std::endl;
    
    return 0;
}

